namespace 是 Linux 提供的视图隔离机制。一个进程被放进某个 namespace 后,它在这一类资源上看到的世界被替换成独立视图,以为自己独占。 - PID namespace:容器内看到的进程号从 1 开始,看不到宿主机和其他容器的进程表。 - NET namespace:独立的网卡、路由表、iptables 规则,容器以为自己独占网络栈。 - MNT namespace:独立的挂载点视图,看到一套自己的目录树。 - UTS namespace:独立的主机名与域名。 - IPC namespace:隔离 System V 与 POSIX 消息队列。 - USER namespace:把容器内的用户 ID 映射成宿主机上的非特权 ID(本册后续涉及特权容器时再展开)。 机制上,创建新 namespace 由 `clone` 系统调用携带各类 `CLONE_NEW*` 标志完成,或由 `unshare` 进入。缺位标注:K8s 各控制面组件本身是 Go 程序,并发单位是 goroutine,不通过 `fork` 派生业务子进程,也不在业务路径上直接发起 `clone`。